From: Jan Beulich Date: Fri, 8 May 2015 12:12:20 +0000 (+0200) Subject: Revert "x86: add the RTC io space to the blocked access list" X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~3294 X-Git-Url: https://dgit.raspbian.org/%22http:/www.example.com/cgi/%22https://%22%22/%22http:/www.example.com/cgi/%22https:/%22%22?a=commitdiff_plain;h=0623f56d0b04d4319c1be1972cf53918f92fa843;p=xen.git Revert "x86: add the RTC io space to the blocked access list" This reverts commit 3b22924062b2648b3df83e9ebda6da52a28c1316, as it breaks Dom0 access to CMOS/RTC. --- diff --git a/xen/arch/x86/domain_build.c b/xen/arch/x86/domain_build.c index 2a23746a82..03e4bfeb84 100644 --- a/xen/arch/x86/domain_build.c +++ b/xen/arch/x86/domain_build.c @@ -37,7 +37,6 @@ #include #include #include -#include #include @@ -1549,8 +1548,6 @@ int __init construct_dom0( rc |= ioports_deny_access(d, pmtmr_ioport, pmtmr_ioport + 3); /* PCI configuration space (NB. 0xcf8 has special treatment). */ rc |= ioports_deny_access(d, 0xcfc, 0xcff); - /* Never permit direct access to the RTC/CMOS registers. */ - rc |= ioports_deny_access(d, RTC_PORT(0), RTC_PORT(1)); /* Command-line I/O ranges. */ process_dom0_ioports_disable(d); diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index 0b0c5e96de..22cdfc48ae 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -1765,6 +1765,10 @@ static int admin_io_okay( if ( (port == 0xcf8) && (bytes == 4) ) return 0; + /* We also never permit direct access to the RTC/CMOS registers. */ + if ( ((port & ~1) == RTC_PORT(0)) ) + return 0; + return ioports_access_permitted(v->domain, port, port + bytes - 1); }